let axios = require('axios');

function loadText(filepath) {
    return new Promise((resolve, reject) => {
        axios.get(filepath, {
            // config
            method: 'get',
            responseType: 'text',

            // @ts-ignore
            responseEncoding: 'utf8',
        }).then((resp) => {
            console.log(`load ${filepath} success!`);
            resolve(resp.data);
        }).catch(err => {
            console.error('err:', err);
            reject(filepath);
        });
    });
}

function loadImage(filepath) {
    return new Promise((resolve, reject) => {
        let img = new Image();
        img.src = filepath;
        img.onload = function () {
            console.log(`load ${filepath} success!`);
            resolve(img)
        };
        img.onerror = function () {
            console.error(`load ${filepath} error!`);
            reject(filepath);
        }
    });
}

// /**
//  * 顺序为 +x -x +y -y +z -z
//  * @param filePathArr
//  */
// function loadCubeImages(gl, filePathArr) {
//     let promiseArr = filePathArr.map(filepath => {
//         return loadImage(filepath)
//     });
//     return Promise.all(promiseArr).then(imgs => {
//         let texId = gl.createTexture();
//         gl.bindTexture(gl.TEXTURE_CUBE_MAP, texId);
//
//         gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
//         gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
//         gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
//         gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
//         // gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_R, gl.CLAMP_TO_EDGE);
//
//         let cubes = [
//             gl.TEXTURE_CUBE_MAP_POSITIVE_X,
//             gl.TEXTURE_CUBE_MAP_NEGATIVE_X,
//             gl.TEXTURE_CUBE_MAP_POSITIVE_Y,
//             gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,
//             gl.TEXTURE_CUBE_MAP_POSITIVE_Z,
//             gl.TEXTURE_CUBE_MAP_NEGATIVE_Z,
//         ];
//
//         // 加载
//         cubes.forEach((value,idx)=>{
//             gl.texImage2D(value,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,imgs[idx]);
//         });
//         return texId;
//     });
// }

/**
 * 顺序为 +x -x +y -y +z -z
 * @param filePathArr
 */
function loadCubeImage(filePathArr){
    let promiseArr =  filePathArr.map(filepath => {
        return loadImage(filepath)
    });
    return Promise.all(promiseArr);
}

module.exports = {
    loadText,
    loadImage,
    // loadCubeImages,
    loadCubeImage,
};
